package order2

import (
	"enjoy-shop/api/base"
	"enjoy-shop/formdata"
	"enjoy-shop/server/orderclient"
	"errors"
	"github.com/gin-gonic/gin"
)

// 订单创建
func OrderCreate(c *gin.Context) {
	var order formdata.OrderCreateReq
	if err := c.ShouldBindJSON(&order); err != nil {
		base.RespData(c, nil, errors.New(err.Error()))
		return
	}
	aa, err := orderclient.CreateOrder(order)

	//newdata := gopay.NewPayData()
	//
	//pay, err := newdata.Pay(&gopay.PayData{
	//	OutTradeNo:  aa.OrderNo,
	//	TotalAmount: strconv.FormatFloat(order.TotalAmount, 'f', 2, 64),
	//	Subject:     viper.GetString("subject"),
	//	ReturnUrl:   viper.GetString("baidu"),
	//	NotifyUrl:   viper.GetString("pay"),
	//})
	base.RespData(c, aa, err)
}

//// 验签
//func SignPay(c *gin.Context) {
//	var order formdata.OrderCreateReq
//	res, err := pkg.Verification(c)
//	if err != nil {
//		panic(errors.New("验签错误"))
//	}
//	// 验证支付状态并更新订单状态
//	no := res.GetString("out_trade_no")
//
//	as, err := orderclient.GetOrderByNol(no)
//	if err != nil {
//		base.RespData(c, nil, errors.New("查询订单信息失败：："))
//		return
//	}
//
//	paymentStatus := res.GetString("trade_status")
//
//	//判断支付状态，更新订单支付状态
//	var resp
//	if paymentStatus == "TRADE_SUCCESS" {
//		order = formdata.OrderC{
//			OrderId:  int(as.Info.OrderId),
//			Status:   1,
//			PayState: 1,
//		}
//		resp, err = orderclient.OrderUpdatePayState(order)
//		if err != nil {
//			c.JSON(http.StatusBadRequest, gin.H{"error": "修改错误"})
//		}
//	} else {
//		order.PayState = 0 // 更新订单支付状态为未支付
//		if order.PayState == 1 {
//			c.JSON(http.StatusBadRequest, gin.H{"error": "订单已支付"})
//			return
//		} else if order.PayState == 0 {
//			c.JSON(http.StatusBadRequest, gin.H{"error": "订单未支付"})
//			return
//		}
//	}
//
//	fmt.Println("更新完成：：")
//	base.RespData(c, resp, err)
//}

// 订单列表
func GetOrderList(c *gin.Context) {
	var order formdata.GetOrderList
	if err := c.ShouldBindJSON(&order); err != nil {
		base.RespData(c, nil, errors.New(err.Error()))
		return
	}
	list, err := orderclient.GetOrderList(order.UserID, order.Status)
	if err != nil {
		base.RespData(c, nil, errors.New(err.Error()))
		return
	}
	base.RespData(c, list, nil)
}

// 订单商品列表
func GetOrderGoodsList(c *gin.Context) {
	var order formdata.GetOrderGoodsList
	if err := c.ShouldBindJSON(&order); err != nil {
		base.RespData(c, nil, errors.New(err.Error()))
		return
	}
	list, err := orderclient.GetOrderGoodsList(order.OrderID)
	if err != nil {
		base.RespData(c, nil, errors.New(err.Error()))
		return
	}
	base.RespData(c, list, nil)
}
